package com.robotic.sensor.service;

import java.util.List;
import com.robotic.sensor.domain.RegionStandard;

/**
 * 区域标准配置Service接口
 * 
 * @author robotic
 * @date 2024-01-20
 */
public interface IRegionStandardService
{
    /**
     * 查询区域标准配置
     * 
     * @param id 区域标准配置主键
     * @return 区域标准配置
     */
    public RegionStandard selectRegionStandardById(Long id);

    /**
     * 根据区域代码和传感器类型查询区域标准配置
     * 
     * @param regionCode 区域代码
     * @param sensorType 传感器类型
     * @return 区域标准配置
     */
    public RegionStandard selectRegionStandardByCodeAndType(String regionCode, String sensorType);

    /**
     * 查询区域标准配置列表
     * 
     * @param regionStandard 区域标准配置
     * @return 区域标准配置集合
     */
    public List<RegionStandard> selectRegionStandardList(RegionStandard regionStandard);

    /**
     * 查询启用状态的区域标准配置列表
     * 
     * @param regionCode 区域代码（可选）
     * @return 区域标准配置集合
     */
    public List<RegionStandard> selectActiveRegionStandardList(String regionCode);

    /**
     * 根据区域代码查询所有传感器类型的标准配置
     * 
     * @param regionCode 区域代码
     * @return 区域标准配置集合
     */
    public List<RegionStandard> selectRegionStandardByCode(String regionCode);

    /**
     * 根据传感器类型查询所有区域的标准配置
     * 
     * @param sensorType 传感器类型
     * @return 区域标准配置集合
     */
    public List<RegionStandard> selectRegionStandardByType(String sensorType);

    /**
     * 新增区域标准配置
     * 
     * @param regionStandard 区域标准配置
     * @return 结果
     */
    public int insertRegionStandard(RegionStandard regionStandard);

    /**
     * 修改区域标准配置
     * 
     * @param regionStandard 区域标准配置
     * @return 结果
     */
    public int updateRegionStandard(RegionStandard regionStandard);

    /**
     * 批量删除区域标准配置
     * 
     * @param ids 需要删除的区域标准配置主键集合
     * @return 结果
     */
    public int deleteRegionStandardByIds(Long[] ids);

    /**
     * 删除区域标准配置信息
     * 
     * @param id 区域标准配置主键
     * @return 结果
     */
    public int deleteRegionStandardById(Long id);

    /**
     * 批量插入区域标准配置
     * 
     * @param regionStandardList 区域标准配置列表
     * @return 结果
     */
    public int batchInsertRegionStandard(List<RegionStandard> regionStandardList);

    /**
     * 更新区域标准配置状态
     * 
     * @param id 区域标准配置主键
     * @param status 状态（0-禁用，1-启用）
     * @return 结果
     */
    public int updateRegionStandardStatus(Long id, String status);

    /**
     * 校验区域代码和传感器类型组合是否唯一
     * 
     * @param regionStandard 区域标准配置信息
     * @return 结果
     */
    public String checkRegionStandardUnique(RegionStandard regionStandard);

    /**
     * 导入区域标准配置数据
     * 
     * @param regionStandardList 区域标准配置数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importRegionStandard(List<RegionStandard> regionStandardList, Boolean isUpdateSupport, String operName);
}